package com.sdleyou.treepro.common.model.dao;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.io.Serializable;
import java.util.List;

/**
 * 坑位DO
 */
@Data
@Document(collection = "{RRZS}_collection_map_well")
public class WellDO implements Serializable {
    /**
     * 文档主键
     */
    @Id
    @Field("_id")
    private String objId;

    /**
     * 基地ID
     */
    @Field("base_id")
    @Indexed
    private String baseId;

    /**
     * 区域ID
     */
    @Field("area_id")
    @Indexed
    private String areaId;

    /**
     * 植树区ID
     */
    @Field("region_id")
    @Indexed
    private String regionId;

    /**
     * 坑位ID
     */
    @Field("well_id")
    @Indexed
    private String wellId;

    /**
     * 坑位名称
     */
    @Field("well_name")
    private String wellName;

    /**
     * 坑位状态 1 空闲 2 已挖坑 3 未挖坑 4 未挖坑已选择 5 已挖坑已选择 6 已种树
     */
    @Field("status")
    private String status;

    /**
     * 选择坑位的用户ID
     */
    @Field("user_id")
    private String userId;

    /**
     * 坑位内树的名字
     */
    @Field("tree_name")
    private String treeName;

    /**
     * 坑位内树的图标
     */
    @Field("tree_icon")
    private String treeIcon;

    /**
     * 坑位内树的大图
     */
    @Field("tree_image")
    private List<String> treeImage;

    /**
     * 选择坑位的时间
     */
    @Field("choose_at")
    private Long chooseAt;

    /**
     * 是否完成程序内流程，坑位生命周期结束 true 是 false 否
     */
    @Field("is_finish")
    private Boolean isFinish;

    /**
     * 兑换到树苗时间
     */
    @Field("finish_at")
    private Long finishAt;

    /**
     * 预设好的树木ID
     */
    @Field("pre_tree_id")
    private String preTreeId;

    /**
     * 预设好的树木名称
     */
    @Field("pre_tree_name")
    private String preTreeName;

    /**
     * 预约状态 0:未预约 1:已预约 2:已植树
     */
    @Field("order_status")
    private Integer orderStatus;

    /**
     * 预约id
     */
    @Field("appointment_id")
    private String appointmentId;

    /**
     * 预约时间
     */
    @Field("order_time")
    private String orderTime;
}
